#include "Core/Array/Set.h"
#include "SetTest.h"

const char * SetTest::GetName() const
{
	return "Set Test";
}

error SetTest::Create()
{
	if(Failed(UnitTest::Create()))
		return errFailed;

	return errOK;
}

error SetTest::Destroy()
{
	if(Failed(UnitTest::Destroy()))
		return errFailed;

	return errOK;
}

error SetTest::Execute()
{
	Set<int> set;

	set.Insert(5);
	set.Insert(4);
	set.Insert(9);
	set.Insert(1);
	set.Insert(2);
	set.Insert(3);
	set.Insert(8);

	if(set.Size()!=7)
		return errFailed;

	set.Insert(8);
	set.Insert(5);
	set.Insert(4);
	set.Insert(9);
	set.Insert(1);
	set.Insert(2);
	set.Insert(3);
	set.Insert(8);

	if(set.Size()!=7)
		return errFailed;

	Set<int>::Iterator it = set.Find(4);

	if((*it)!=4)
		return errFailed;


	return errOK;
}
